A continuation of both Timeslip's work on expanding the functionality to Oblivion's scripting language regarding the implementation and manipulation of graphics effects and OVEP's work in making Oblivion looking better using a variety of graphical effects, OBGEv2 is the name of Scanti's rewrite of the OBGE OBSE plugin and the accompanying project that is focussed on the creation of various post-processing effects to improve Oblivion's graphics.
Scanti's rewrite of OBGE is centered around the exposure of more information about Oblivion's graphical processes and the fixing of bugs present in the original. The original OBGE should not be used alongside OBGEv2, which should be backwards-compatible with OBGE mods.
The modders that make up this project work hard to bring you the effects they create, so please respect them for taking the time to do so. If you would like to contribute, please feel free to participate in the sharing of knowledge and ideas to help us strive to complete our goal. If you are able to find useful resources that can benefit the project, please feel free to share them as well. This project is in a Beta Phase and will probably be in that state forever as add new things are added to it. Expect bugs when using newly created shaders, or when using/tweaking the shaders on your own.
This ReadMe details the information relating to the OBGEv2 project's shaders and their support plugin, to be used with the OBGEv2 OBSE plugin. The available shaders cover a range of graphical effects, and are all tweakable to varying degrees. The support plugin allows the user to tweak and toggle all OBGEv2 shaders in game.
First, make sure you have downloaded and installed the 'OBGEv2 Core' package from the OBGEv2 and OBGEv2 project page here.
To then install the OBGEv2 shaders and their support plugin, do the following:
Oblivion\Data directory. Answer yes to any merge or overwrite prompts.You will now be able to load and tweak shaders using the support plugin. See below for how to use it, or for how to use the shaderlist method.
When upgrading between versions of the support plugin, a clean save procedure should be used, ie. make a save with no support plugin active and then install and activate the new support plugin. Note that this will cause your shader settings to be lost, so note them down somewhere.
Safe uninstallation of OBGEv2 shaders and the support plugin should be as simple as deleting the files that you installed. However, if that causes problems for you, then below is a more thorough uninstallation procedure:
bSaveData=0 in your OBGE.ini, found in your My Documents\My Games\Oblivion folder.To complete uninstallation of the OBGEv2 Shaders package, delete:
Data\Shaders folder.Data\Textures\ssao\RandomNoiseB.dds.
Below is a list of all the shaders available from the OBGEv2 project on TES Nexus. The list does not include any shaders that may have been added since this readme was updated, or any shaders that are only available for download from the project's forum thread. Version numbers are taken from the version numbers within each shader file, and are not indicative of relative quality.
Depth of Field Shaders:
These shaders optionally give a Depth of Field effect, progressively blurring objects with increasing distance from the focus point (what the crosshairs point at), or a Distance Blur effect, progressively blurring objects with increasing distance from the player.
Ambient Occlusion (AO) Shaders:
These shaders use stylised lighting to add depth and contrast to the scene, mainly by shadowing recesses. Two types of AO shader are available: Horizon-Based AO (HBAO) and Screen Space AO (SSAO). These are all SM3 shaders.
Other Shaders:
The support plugin is one of two ways to load OBGEv2 shaders into Oblivion, the other being through the shaderlist. The main advantage of the support plugin is that shaders may be tweaked and toggled on or off while in-game. The main disadvantage of the support plugin is that it only supports shaders which have had their settings recorded in the plugin. However, since all of the above OBGEv2 shaders are supported, this is largely unnoticeable.
To use the functionality in-game, activate the misc. item in your Inventory screen (or the menu option in the Cobl [Options] misc. item menu if you have Cobl installed and active), and exit the inventory to see the configuration menu.
In this way you can choose what shaders you use and tweak their effects without having to change the shader files themselves. Clicking the "Toggle Enabled Shaders" button will toggle off all the shaders you have active, and clicking it again will toggle them back on, so you don't need to turn each one off and on separately. If you enable the Godrays shader, it will automatically be disabled when you enter an interior with no weather to avoid graphical issues, and then it will be re-activated when you leave the interior.
It should be noted that installing either the SSAO or SSAO Performance (but not the SSAO Ring or Volumetric) shaders will greatly increase the load time of the shaders when you load a game, in the order of ten times longer with them than without them. This is simply due to the complexity of those two shaders.
The support plugin also includes support for four 'dummy' shaders, named "testshader1.fx", "testshader2.fx", "testshader3.fx" and "testshader4.fx", and will allow you to toggle these shaders on and off. This support is provided so that shader developers can name their shaders as one of these and so load them using the support plugin. Variable alteration is not supported.
The shaderlist is one of two ways to load new shaders into Oblivion, the other being through the use of the Support Plugin. Shaders listed in it will be loaded as static shaders, unable to be altered via scripts, or turned off and on. To load a shader in the shaderlist, do the following:
My Games\Oblivion folder, set bUseShaderList equal to 1, so that its line reads: bUseShaderList=1.When you next launch Oblivion, the shader you listed in the shaderlist.txt will be applied. When listing multiple shaders in the shaderlist, there is a specific load order they must be listed in:
NormalFilterAA
SSII
SSAO or HBAO (only have one SSAO or HBAO shader loaded at any one time)
Depth Of Field (only have one depth of field shader loaded at any one time)
Godrays
CelShader + Edge AA
Any other OBGEv2 shaders
Do not list non-OBGEv2 shaders in your shaderlist.txt. Such shaders may be used by other mods, and causing them to be loaded as static shaders will break them.
It should be noted that installing either the SSAO or SSAO Performance (but not the SSAO Ring or Volumetric) shaders will greatly increase the load time of the shaders when you load a game, in the order of ten times longer with them than without them. This is simply due to the complexity of those two shaders.
Read this readme fully, as well as the Bethesda forum thread, especially the FAQs. If your problem is not answered there, do the following:
Supply the following:
The above documents should be posted exactly how they appear in the file, in spoiler (ie. [spoiler]content[/spoiler]) tags.
In addition, if what you are experiencing is a graphical bug of some kind, you should supply screenshots. It has been noted that Oblivion's screenshot function may not work with OBGEv2 installed, so in that case use FRAPS or some other 3rd party screenshot tool. You can convert the image from .bmp to .jpg in Wrye Bash. Upload the screenshot and post a link to it, so we can see what your problem actually looks like.
If your bug is with a shader effect, and you have altered any variables within the shader, also post the lines on which you changed anything, exactly how they are in the shader, again in spoiler tags.
We can't really help all that well without the above information, as especially with graphical errors, it can hard to describe them in writing in a way that we will be able to understand what's going on.
Q: Is this a RELz? Should I download this?
A: This is a Beta (and hopefully stable) release. It will always be a work in progress and could contain bugs
from time to time. If the thought of this scares you then this probably isn't the mod for you.
All shaders are supplied with no documentation of any sort besides what is on the Bethesda Oblivion forum thread or in the shader file itself. Hence there
is an element of DIY involved in using the products of this project, especially when it comes to tweaking the settings of the
shaders. Within each shader effects file there may or may not be a section at the beginning of the file detailing any
variables that you can change, and what they do. You are advised to check there before posting if you wish to tweak any
shaders.
Q: Does this require OBSE? If so, any specific version?
A: Yes, it does require OBSE, and you must use at least v0019, however you are advised to use the latest version available.
Q: Do the OBGEv2 shaders require any specific hardware to run?
A: The shaders are compatible with both ATI and NVIDIA graphics cards, although some shaders (marked with "SM3" above) require a Shader Model 3 compliant graphics card to run. Any NVIDIA graphics card that is GeForce 6 Series (released 2004) or newer supports Shader Model 3.0. Any ATI graphics card that is Radeon X1000 Series (released 2005) or newer supports Shader Model 3.0.
Q: How do I get involved with this project?
A: There are a few ways that you can get involved:
If you can write shader code, then you can get stuck in making your own effects right away. The shaders can be written in
either HLSL or ASM.
If you can write in C/C++, then perhaps you would be able to help Scanti and shadeMe in their work on the OBSE plugin. The project has a github respository
so you can fairly easily create a fork and add your own changes. This site also allows you to create your own wiki pages for the project, which you are more than welcome to contribute to.
It would also be beneficial if you know anything about low-level DirectX and the OBSE plugin system.
If you can't do either of these things, you can still contribute support, articles and papers on graphical effects that could
be implemented in Oblivion, and whatever else you can bring to the project. Especially cake or ice cream.
Q: I found a bug...
A: Good for you. If you find a bug, please report it as detailed in the 'How To Report Bugs Helpfully' section above. We can help you more when you explain the problem better.
Q: I cannot see an effect I have installed, and my OBGEv2 log has the line "Failed to load" after the line
"Loading shader (
A: This results from OBGEv2's inability to compile the shader effects you are trying to load. Make sure that you have the DirectX update linked to above installed, and if using a shaderlist, that you have spelled the names of the shaders in your shaderlist.txt exactly as they should be, with the .fx extension. In the case of some effects, you must also have a graphics card that is Shader Model 3 compliant.
Q: The ordering of the objects on the screen is messed up or the game menu has no buttons! Why is this happening?
Q: Once I got the effects to work, my AA disappeared? WHY?!?
A: The method used to expose the information used to read the depth buffer is incompatible with Anti-Aliasing. This is reported to be the case on both ATI and NVIDIA graphics cards, although owners of ATI graphics cards can force AA through ATI Tray Tools without problems. The only solution is to edit the OBGE.ini file in your My Documents\My Games\Oblivion folder and change this line:
[DepthBuffer]
bUseDepthBuffer=1
to:
[DepthBuffer]
bUseDepthBuffer=0
This will however cause any effect that uses the depth buffer to stop working properly. This currently includes all the SSAO and Depth of Field shaders and the
Godrays, NormalFilterAA and CelShader+EdgeAA shaders.
Q: A shader is listed saying it has multiple effects. What does that mean?
A: If a shader has multiple effects, it means that it rolls many effects into one file, and gives you the ability to choose which of these effects, or combinations of these effects, are applied to your game. This has the advantage that you can cut down on the number of shader files you have to keep track of. You will generally be able to make these selections by changing variables in the shader.
Q: How do I change/tweak shader settings/variables?
A: Open up the shader .fx file in a text editor such as Notepad. The variables are found at the beginning of the file, and may
be labelled as tweakable and/or commented with information regarding them.
Alternatively, you can alter most shaders' variables in-game using the Support Plugin, though these changes are not recorded
in the shader file.
Q: My Godrays is just a searchlight in clear weather.
A: Godrays are best displayed in cloudy weather types, from 6 to 8 in the mornings and evenings. However, if you get the searchlight effect, you have to edit the shader's FOV setting to match your ingame FOV. An example would be if you play Oblivion with a FOV of 95, you have to edit your Godrays shader file to a FOV of 95. To edit the shader, change the value of "#define fov", near the beginning of the file, to the value of your FOV.
Q: Why do objects in the distant have weird black stuff on them when fog weather is active?
Q: Using the SSAO shader does weird things to stuff underwater. What gives?
A: That is from the SSAO shader, and occurs because OBGEv2 does not give any information on fog, so the effects are applied as though there is none. Hopefully this will be fixed in a future update.
Q: SSAO demolishes my FPS; any ideas?
A: The easiest way to improve your frame rate while using the SSAO shader is to reduce the sample size, and correspondingly increase the sample area. There is a performance version of the shader, that lowers quality slightly in return for a large performance boost, and an alternate version that produces a weaker effect at a fraction of the performance cost. The reason the SSAO shader has such a large performance hit is because it has to calculate information about surface normals from scratch, as this information is not available to access.
Q: After installing this I am getting mouse lag; how can I fix this?
A: Try lowering the value of the iBufferTexturesNumBits settinng in your OBGE.ini. Some users have reported that doing so eliminates mouse lag.
Q: How do I get the EdgeAA effect?
A: The EdgeAA effect is part of the CelShader+EdgeAA shader, to enable the effect change the following variables as shown:
flgEdgeMask = 0;
flgEdgeAA = 1;
Q: After installing this my game freezes during or just after loading a save game; why?
A: This is occurs when loading the SSAO or SSAO Performance shaders (ssao_test.fx or ssao_perf.fx), as they each take 5 times longer to compile than all the other shaders combined. Your game has not crashed or broken, and after a while it will resume normal operation. To stop the freeze, you must delete those two shaders.
Only details of updates to the support plugin are recorded here, with shader updates only being mentioned. Updates to individual shaders are made irregularily, and it is up to the individual authors of the shaders to record their changes elsewhere, or not at all.
Version 4.2
Version 4.1
Version 4